The present invention relates to computing, and in particular, to a systems and methods for accessing applications based on user intent.
Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Computer applications have become ubiquitous in the work and private lives of users. Computer applications running on computer systems from servers to personal computers to personal digital assistants and cell phones permeate our lives. Typically, users load different computer software applications onto their computing devices based on their own personal needs and preferences. For example, a user of a work computer may use an Enterprise Resource Planning (“ERP”) software application, a communications and calendaring software application (e.g., Microsoft® Outlook®), and other work specific applications, whereas a home user may use a photo or video editing software application and other applications targeting hobbies and entertainment. Users typically perform a variety of tasks using software services available in the particular environment.
The goals and desires of a user when using software (i.e., the user intent) is typically expressed by the particular applications or services a user accesses manually (e.g., via mouse clicks). While automated service-discovery and a loose-coupling of software components has occurred, the navigation and the expressiveness of user interfaces of business applications, for example, is still limited to navigating between landing pages (e.g., role-based) and packaged UI (ERP transactions or office applications). Currently, the information architecture of traditional computer software systems is described by navigational links between pre-packaged software and screens, and the system has limited or no understanding of the user intent and the purpose of particular services. A conversation with the user and the system on how to achieve a goal is currently limited to proprietary and local applications (e.g. problem resolution wizards, map directions, domain-specific tools such as trip booking). But at the application level, such knowledge is currently not represented efficiently, and thus cannot support the user in choosing between multiple methods and services for accomplishing an action. For example ToDos in office products describe the task (due date, owner, status) but do not recommend the implementation of the action to accomplish the task.
One common approach for interacting with a user is the graphical user interface (GUI). GUIs allow users to interact with a software application (e.g., in the business or enterprise context) using graphical constructs such as icons, windows, etc. However, GUIs suffer from a number of issues. For example, in terms of information architecture, GUIs need to provide means for spatially structuring the content of the application on the screen in order to let the user access the desired service or function. For instance, some GUIs may employ a tree in order to navigate a hierarchical structure. This can cause issues if the user does not identify the appropriate branch under which the sought item was sorted in. Additionally, in terms of interaction design, GUIs need to provide highly specific means for using a specific function. For example, the user may need to click on a specific button which is located at a particular screen location in order to activate the corresponding function. This can cause issues if the user has difficulties in identifying the button or clicking it. Moreover, in terms of interface text terminology, GUIs may suffer from unfamiliar text identifiers. For example, when text associated with a GUI interface features a label which is unfamiliar to the user, the user may mistakenly assume that the function is not the desired function. This could be the case when the interface states “save” but the user expects the label “submit” to finalize and provide their input for subsequent processing.
In some GUIs there can be numerous mismatches between the user intent and how the user interface enables users to realize the intent. In principle, if there is a mismatch, the full load for resolving an issue is on the user since the GUI is relatively rigid and cannot adapt spontaneously to the stated user intent. Even if the GUI was set up to adapt to user input, this kind of adaptation mostly applies only to syntactical user interactions (e.g., user operations which pertain to the physical features of the GUI) but does not reflect the user intent which is semantic in principle.
The present disclosure addresses these and other issues with systems and methods for model-based processing of linguistic user inputs.